In [11]:
import json
import tdsvis
import pandas as pd
import networkx as nx

The graph structure

In [12]:
tmp = json.loads(open("data/ieee_8500/graph.json").read())

g = nx.DiGraph()
for node in tmp['nodes']:
    g.add_node(node['name'], data=node)
    
for edge in tmp['edges']:
    g.add_edge(edge['source'], edge['target'])
    
pos = { node['name']: (node['x'], node['y'] ) for node in tmp['nodes']}

Timeseries

In [13]:
template = pd.read_csv("data/te_data/results/house_totalLoad.csv", skiprows=8)
template.rename(columns={'# timestamp': 'timestamp'}, inplace=True)
template['timestamp'] = pd.to_datetime(template['timestamp'])
template.set_index('timestamp', inplace=True)
In [14]:
prices = pd.read_csv("data/te_data/results/res_alpha.csv").T
prices.columns = template.columns
prices.index = template.index
prices = prices.loc["2000-09-01 06:00:00":].resample("30min").mean()
In [15]:
prices = prices.unstack().reset_index()
prices.columns = ['name', 'timestamp', 'value']
In [16]:
prices['phase'] = prices['name'].map(lambda x: x.split("_")[0][-1])
In [17]:
import tdsvis

tdsvis.initialize_notebook(1200)
In [18]:
select = tdsvis.select()

initial_state = tdsvis.graphs.InitialState(current_time = "2000-09-01 14:00:00",
                                           color="#FF0000")

play = tdsvis.graphs.Play()

network = tdsvis.graphs.Network(g, pos, scale=1, height=300, width=340,
                                size={'house': 5, 'node': 0.2},
                                legend=False)

network.subscribe = ['price_colorB', 'price_colorA', 'price_colorC']

pdf = tdsvis.graphs.Line(prices[prices['phase']=='B'], x='timestamp', y='name', margin_left=75,
                                ylab="load", xlab="time", values='value', scale=1, height=340, width=340) 

pdf.emit_color = tdsvis.color.ContinuousColor('price_colorB', 0.1, 1, tdsvis.color.continuous.interpolateBlues)
pdf.subscribe = ['price_colorB']

apdf = tdsvis.graphs.Line(prices[prices['phase']=='A'], x='timestamp', y='name', margin_left=75,
                                ylab="load", xlab="time", values='value', scale=1, height=340, width=340) 

apdf.emit_color = tdsvis.color.ContinuousColor('price_colorA', 0.1, 1, tdsvis.color.continuous.interpolateGreens)
apdf.subscribe = ['price_colorA']

cpdf = tdsvis.graphs.Line(prices[prices['phase']=='C'], x='timestamp', y='name', margin_left=75,
                                ylab="load", xlab="time", values='value', scale=1, height=340, width=340) 

cpdf.emit_color = tdsvis.color.ContinuousColor('price_colorC', 0.1, 1, tdsvis.color.continuous.interpolateOranges)
cpdf.subscribe = ['price_colorC']
In [19]:
tdsvis.graphs.render([select, initial_state, play, network, pdf, apdf], standalone=False)
In [20]:
tdsvis.graphs.render([select, initial_state, play, network, pdf, apdf], standalone=False)